Skip to content

Use special DefIds for aliases#155981

Open
ChayimFriedman2 wants to merge 1 commit intorust-lang:mainfrom
ChayimFriedman2:alias-def-id
Open

Use special DefIds for aliases#155981
ChayimFriedman2 wants to merge 1 commit intorust-lang:mainfrom
ChayimFriedman2:alias-def-id

Conversation

@ChayimFriedman2
Copy link
Copy Markdown
Contributor

@ChayimFriedman2 ChayimFriedman2 commented Apr 30, 2026

View all comments

Renewal of #155025, after AliasTermKind was also ported.

Like we do for other things for better experience in rust-analyzer.

It's possible now that the AliasTyKind and AliasTermKind contains the DefId.

It does require a few try_into().unwrap()s since in the solver's consider_X_candidate() only get an untyped DefId. It's possible to reduce that considerably if we'd pass them the typed def id as a parameter, but I don't know what will be the impact on perf. Should I try to pursue that?

r? lcnr

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Apr 30, 2026
Comment thread compiler/rustc_next_trait_solver/src/solve/normalizes_to/inherent.rs Outdated
Comment thread compiler/rustc_next_trait_solver/src/solve/normalizes_to/mod.rs
Comment thread compiler/rustc_next_trait_solver/src/solve/normalizes_to/mod.rs
Comment thread compiler/rustc_type_ir/src/relate.rs
Comment thread compiler/rustc_next_trait_solver/src/delegate.rs Outdated
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented May 4, 2026

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@ChayimFriedman2
Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 4, 2026
rust-bors Bot pushed a commit that referenced this pull request May 4, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 4, 2026

❗ There is currently no auto build in progress on this PR.

Hint: There is a pending try build on this PR. Maybe you meant to cancel it? You can do that using @bors try cancel.

@ChayimFriedman2
Copy link
Copy Markdown
Contributor Author

@bors try cancel

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 4, 2026

Try build cancelled. Cancelled workflows:

@ChayimFriedman2 ChayimFriedman2 removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 4, 2026
@ChayimFriedman2
Copy link
Copy Markdown
Contributor Author

How do I request a perf run with -Znext-solver=globally?

@ChayimFriedman2
Copy link
Copy Markdown
Contributor Author

Seems like there is no way to do that, so at least...

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 4, 2026
@ChayimFriedman2 ChayimFriedman2 added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 4, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 4, 2026

☀️ Try build successful (CI)
Build commit: a2fdd5d (a2fdd5dc4e99453080f5bb2070e5875c96f113b2, parent: 1d72d7e8136faaebad3a85eeed432e6ea1b2ffab)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (a2fdd5d): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up.

@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.1% [-0.1%, -0.1%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.1% [-0.1%, -0.1%] 1

Max RSS (memory usage)

Results (secondary 3.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.0% [0.4%, 8.2%] 7
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

Results (secondary -5.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.9% [0.7%, 1.2%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-8.1% [-23.7%, -0.4%] 6
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 494.198s -> 495.332s (0.23%)
Artifact size: 394.42 MiB -> 394.45 MiB (0.01%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 4, 2026
@ChayimFriedman2 ChayimFriedman2 marked this pull request as draft May 4, 2026 18:58
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 4, 2026
@ChayimFriedman2
Copy link
Copy Markdown
Contributor Author

Converted to draft because alongside this PR I'm also porting r-a to it, so I want to make sure I don't miss anything.

Like we do for other things for better experience in rust-analyzer.

It's possible now that the `AliasTyKind` and `AliasTermKind` contains the DefId.

It does require a few `try_into().unwrap()`s since in the solver's `consider_X_candidate()` only get an untyped `DefId`. It's possible to reduce that considerably if we'd pass them the typed def id as a parameter, but I don't know what will be the impact on perf.
@ChayimFriedman2 ChayimFriedman2 marked this pull request as ready for review May 4, 2026 21:20
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 4, 2026
@ChayimFriedman2
Copy link
Copy Markdown
Contributor Author

Okay, I've verified that the changes here work for r-a.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants